* Jersey karaf feature

This is a maven pom that generates an apache karaf feature repository with a feature loading the jersey JAX-RS implementation.

[[https://github.com/steinarb/jersey-karaf-feature/actions/workflows/jersey-karaf-feature-maven-ci-build.yml][file:https://github.com/steinarb/jersey-karaf-feature/actions/workflows/jersey-karaf-feature-maven-ci-build.yml/badge.svg]]
[[https://maven-badges.herokuapp.com/maven-central/no.priv.bang.karaf/jersey-karaf-feature][file:https://maven-badges.herokuapp.com/maven-central/no.priv.bang.karaf/jersey-karaf-feature/badge.svg]]

** Installing the feature in karaf

Give the following commands from the karaf console:
#+BEGIN_EXAMPLE
  feature:repo-add mvn:no.priv.bang.karaf/jersey/LATEST/xml/features
  feature:install jersey-karaf-feature
#+END_EXAMPLE

** Use the feature in a maven project

If you have a maven project building an OSGi bundle with a karaf feature repository attached, using the [[https://svn.apache.org/repos/asf/karaf/site/production/manual/latest/karaf-maven-plugin.html#_using_the_karaf_maven_plugin][karaf-maven-plugin]], then you can add a runtime dependency to this feature by adding the following to the maven dependencies of your project:
 1. Import the BoM (Bill of Materials) in your project's dependencyManagement
    #+BEGIN_SRC xml
      <build>
       <dependencyManagement>
        <dependencies>
         <dependency>
          <groupId>no.priv.bang.karaf</groupId>
          <artifactId>jersey</artifactId>
          <version>1.9.10</version>
          <type>pom</type>
          <scope>import</scope>
         </dependency>
        </dependencies>
       </dependencyManagement>
      </build>
    #+END_SRC
 2. Add a dependency to the karaf feature repository of the feature (/note/: no version, because that is supplied by the BoM import)
    #+BEGIN_SRC xml
      <build>
       <dependencies>
        <dependency>
         <groupId>no.priv.bang.karaf</groupId>
         <artifactId>jersey</artifactId>
         <type>xml</type>
         <classifier>features</classifier>
        </dependency>
       </dependencies>
      </build>
    #+END_SRC

** Release history

It might simplify things if I'm able give the feature the same version number as the jersey version the feature pulls in and starts.  But for the moment the version numbers are different.

Also I have to bump HK2 (maybe) and jackson (for sure) at the same time when making a new release of this karaf feature and the versions of HK2 and jackson don't match the jersey version.

| Date                   | Release | Jersey version | Comment                                                                                            |
|------------------------+---------+----------------+----------------------------------------------------------------------------------------------------|
| <2025-05-04 Sun 21:53> |  1.9.10 |           2.46 | Use jersey 2.46 and jackson 2.19.0                                                                |
| <2024-08-02 Fri 16:46> |   1.9.9 |           2.44 | Use jersey 2.44 and jackson 2.17.2                                                                 |
| <2024-03-25 Mon 10:41> |   1.9.8 |           2.42 | Use jersey 2.42 and jackson 2.16.2                                                                 |
| <2023-11-04 Sat 22:58> |   1.9.7 |           2.41 | Use jersey 2.41 and jackson 2.15.1, replace javax.ws.rs-api 2.1.1 with jakarta.ws.rs-api 2.1.6     |
| <2023-07-30 Sun 12:49> |   1.9.6 |           2.40 | Use jersey 2.40 and jackson 2.15.2                                                                 |
| <2023-04-25 Tue 22:52> |   1.9.5 |         2.39.1 | Use jackson 2.15.0 to really fix CWE-400                                                           |
| <2023-04-24 Mon 18:20> |   1.9.4 |         2.39.1 | Use jersey 2.39.1. Also use jackson 2.14.2 to fix CWE-400                                          |
| <2022-11-28 Mon 20:13> |   1.9.3 |           2.37 | Use jersey 2.37. Also use jackson 2.14.1 to fix CVE-2022-42003 and CVE-2022-42004                  |
| <2022-08-09 Tue 22:21> |   1.9.2 |           2.36 | Use jersey 2.36                                                                                    |
| <2022-05-30 Mon 20:18> |   1.9.1 |           2.35 | Use jackson 2.13.3                                                                                 |
| <2022-05-28 Sat 23:10> |   1.9.0 |           2.35 | Use karaf 4.4.0 and OSGi 8                                                                         |
| <2022-02-19 Sat 21:59> |   1.8.5 |           2.35 | jersey 2.35 and jackson 2.13.1                                                                     |
| <2021-06-15 Tue 19:23> |   1.8.4 |           2.34 | jersey 2.34 and jackson 2.12.3                                                                     |
| <2021-05-02 Sun 17:09> |   1.8.3 |           2.33 | Split repository feature into multiple files, add jackson java.time module feature                 |
| <2021-04-17 Sat 17:17> |   1.8.2 |           2.33 | Add a Bill of Materials (BoM) POM                                                                  |
| <2021-01-24 Sun 21:00> |   1.8.1 |           2.33 | Use jersey 2.33 and jackson 2.12.1                                                                 |
| <2021-01-23 Sat 13:28> |   1.8.0 |         2.30.1 | Changed the maven coordinates of the feature to allow for integration test                         |
| <2020-09-11 Fri 19:35> |   1.7.1 |         2.30.1 | Don't load servicemix javax.inject at runtime (might conflict with the HK2 javax.inject bundle)    |
| <2020-04-09 Thu 20:29> |   1.7.0 |         2.30.1 | Use jackson 2.10.3 and HK2 2.6.1                                                                   |
| <2020-03-04 Wed 23:49> |   1.6.0 |           2.30 | Use jackson-databind 2.9.10.3                                                                      |
| <2020-02-07 Fri 21:55> |   1.5.0 |           2.30 | Use jersey 2.30 and jackson-databind 2.9.10.2 (/Note/! [[https://github.com/eclipse-ee4j/jersey/issues/4156][jersey 2.28 doesn't work on OSGi with JDK8]]) |
| <2019-11-05 Tue 22:22> |   1.4.0 |           2.28 | Use jackson-databind 2.9.10.1                                                                      |
| <2019-06-08 Sat 22:22> |   1.3.0 |           2.28 | Use jackson 2.9.10                                                                                 |
| <2019-08-01 Thu 09:33> |   1.2.0 |           2.28 | Use security mini-patch 2.9.9.2 of jackson-databind                                                |
| <2019-06-10 Mon 20:46> |   1.1.0 |           2.27 | Split HK2 into separate feature that is loaded first                                               |
| <2019-06-09 Sun 22:22> |   1.0.0 |           2.27 |                                                                                                    |

** License

The license of this karaf feature, is Apache Public License v 2.0

See the LICENSE file for details.
